package com.lovo.web.service;

import com.lovo.web.bean.BuyCarBean;
import com.lovo.web.bean.UserOrderBean;

import java.util.List;

public interface IBuyCarService {
    /**
     * 新增购物车记录
     * @param buyCar 购物车对象
     */
    void add(BuyCarBean buyCar);

    /**
     * 根据登录用户id查询该用户所属所有购物车
     * @param userId 用户id
     * @return 购物车集合
     */
    List<BuyCarBean> findAllByUserId(long userId);

    /**
     * 修改购物车数量
     * @param buyCarId 购物车id
     * @param newNum 新数量
     */
    void updateNumByBuyCarId(long buyCarId,int newNum);

    /**
     * 根据购物车id删除购物车
     * @param buyCarId 购物车id
     */
    void delByBuyCarId(long buyCarId);

    /**
     * 批量结算购物车
     * 先生成相应未付款订单
     * 再删除购物车
     *
     * @param buyCarIdList 购物车id集合
     * @param orderList 订单集合
     */
    String delBuyCarAndCreateOrder(List<Long> buyCarIdList, List<UserOrderBean> orderList);

    /**
     * 直接购买商品
     * 生成一个未付款订单并发送给审核、后台系统
     * @param order 订单对象
     */
    String buyProduct(UserOrderBean order);
}
